In an information processing system, for example, a database in which data such as files and images is stored, load involved in accesses may be balanced through parallel arrangement of information processing apparatuses such as servers. Hereinafter, information processing apparatuses that are load balanced may be referred to as “nodes”. In such an information processing system, when accesses are concentrated on a particular node, the node on which the accesses are concentrated becomes a bottleneck and thus the overall performance of the information processing system declines.
Accordingly, in order to balance the load on the nodes, there is a related technique in which, among data areas provided in association with the respective nodes, a data area having a high frequency of reference is set as a shared data area that is accessible from another node.
In order to improve the efficiency of search by reducing accesses to a database, there is a related technique in which a search result is obtained from a database server and a page identifier (ID), search condition data, and obtained result data are managed in association with each other.
In addition, there is a proposed technique in which an item of an inquiry to a database server and a result thereof are stored in a memory included in each node, such as a server.
Japanese Laid-open Patent Publication No. 2005-339236 and Japanese Laid-open Patent Publication No. 2006-127123 disclose related techniques.
When an item of an inquiry and a result thereof are to be stored in the memory in each node as in the proposed technique, a load balancer that distributes the inquiry to each node determines in which node the item of the inquiry and the result thereof are to be stored in its memory. For determining in which node the information is to be stored, the load balancer uses a hash table in many cases. For such load balancing, it is conceivable to employ a distribution algorithm for balancing information storage locations, in which the node having an ID represented by a remainder resulting from division of a hash value by the number of load-balanced nodes is set as an information storage location.
However, when any of the load-balanced nodes is removed from the load-balanced configuration because of a failure or the like, the number of nodes decreases. When the number of nodes is used to determine an information storage location, a decrease in the number of nodes causes a value determined as the information storage location to vary. This makes it difficult to connect to the node in which information requested is stored, which may result in frequent occurrence of cache misses. The frequent occurrence of cache misses may cause accesses to concentrate on a database, which may lead to a significant decline in the performance of the information processing system.
In order to alleviate the problems, it is conceivable to employ consistent hashing for limiting influences of the decreased number of nodes to only a portion. Even with such an approach, however, the influences reach multiple nodes in practice, and there is still a possibility that the performance of the information processing system declines.
In the related technique in which the data area having a high frequency of reference is set as the shared data area, no consideration has been given to allocating the memory in each node as an information storage location. Thus, under the above-described situation, it is difficult to avoid the decline in the performance of the information processing system.
In the related technique in which the page ID, the search condition data, and the obtained result data are managed in association with each other, no consideration has been given to node removal when the above-described distribution algorithm is used. Thus, when node removal is performed, it is difficult to avoid the decline in the performance of the information processing system.